<?php

Class PollClaimsController extends AppController {

    public $name = 'PollClaims';

    public function index($tipo) {
        $this->layout = "ajax";
        $proyect_id = $this->Session->read('proy_id');
        if ($proyect_id == "") {
            $this->Session->setFlash('No ha seleccionado Proyecto');
            $this->redirect(array('controller' => 'Proyects', 'action' => 'index'));
        } else {
            $this->set('proyect_id', $proyect_id);
            $this->set('tipo', $tipo);
            $this->paginate = array('PollClaim' => array('maxLimit' => 500, 'limit' => 50, 'fields' => array('PollClaim.radicado_entrada', 'PollClaim.fecha_recibido', 'PollClaim.radicado_salida', 'PollClaim.fecha_contestacion', 'PollClaim.calificacion', 'PollClaim.concepto', 'PollClaim.id')));
            $this->set('PollClaims', $this->paginate(array('PollClaim.proyect_id' => $proyect_id, "PollClaim.tipo" => $tipo)));
        }
    }

    public function edit($id) {
        $this->layout = "ajax";
        $this->PollClaim->recursive = -1;
        if (empty($this->data)) {

            $this->data = $this->PollClaim->find('first', array('conditions' => array('PollClaim.id' => $id), 'fields' => array('PollClaim.id', 'PollClaim.tipo', 'PollClaim.fecha_recibido', 'PollClaim.fecha_session', 'PollClaim.numero_acta', 'PollClaim.radicado_entrada', 'PollClaim.radicado_salida', 'PollClaim.fecha_contestacion', 'PollClaim.calificacion', 'PollClaim.concepto', 'PollClaim.proyect_id', 'PollClaim.id')));
        } else {

            if ($this->PollClaim->saveAll($this->data)) {
                $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                $this->redirect(array('controller' => 'PollClaims', 'action' => 'index', $this->data['PollClaim']['tipo']));
            } else {
                $this->Session->setFlash('Error editando datos');
            }
        }
    }

    public function add($proyect_id, $tipo) {
        $this->layout = "ajax";
        $this->set('proyect_id', $proyect_id);
        $this->set('tipo', $tipo);
        if (empty($this->data)) {
            
        } else {
            if ($this->PollClaim->saveAll($this->data)) {
                $this->Session->setFlash('Registro Adicionado correctamente', 'flash_custom');
                $this->redirect(array('controller' => 'PollClaims', 'action' => 'index', $tipo));
            } else {
                $this->Session->setFlash('Error Guardando datos');
            }
        }
    }

    public function delete($id, $tipo) {
        if ($this->PollClaim->delete($id)) {
            $this->Session->setFlash('Registro borrado correctamente', 'flash_custom');
            $this->redirect(array('controller' => 'PollClaims', 'action' => 'index', $tipo));
        } else {
            $this->Session->setFlash('Error Guardando datos');
        }
    }

    public function report($tipo) {
        $this->layout = "csv";

        ini_set('max_execution_time', 600);
        if ($tipo == 1) {
            $filename = "Reporte_reclamaciones_fase2A-" . date("Y-m-d") . ".csv";
        } else {
            $filename = "Reporte_reclamaciones_fase2B-" . date("Y-m-d") . ".csv";
        }

        $csv_file = fopen('php://output', 'w');
        header('Content-type: application/csv');
        header('Content-Disposition: attachment; filename="' . $filename . '"');

        // Las cabeceras del archivo csv  
        $header_row = array("CÓDIGO PROYECTO", "CALIFICACIÓN", "CONCEPTO", "NÚMERO ACTA", "FECHA RECIBIDO", "RADICADO ENTRADA", "RADICADO SALIDA", "FECHA CONTESTACIÓN", "FECHA SESIÓN");

        $newRow = array();

        foreach ($header_row as $a) {
            $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
        }

        fputcsv($csv_file, $newRow, ';', '"');

        //Selecciono todos los proyectos distintos que tengan un plano topográfico
        $sql = "SELECT Proyect.codigo, PollClaim.calificacion, PollClaim.concepto, PollClaim.numero_acta, PollClaim.fecha_recibido, PollClaim.radicado_entrada, PollClaim.radicado_salida, PollClaim.fecha_contestacion, PollClaim.fecha_session
                FROM poll_claims PollClaim
                LEFT JOIN proyects Proyect ON Proyect.id = PollClaim.proyect_id
                WHERE PollClaim.tipo=" . $tipo;
        $reclamaciones_fase2A = $this->PollClaim->query($sql);

        foreach ($reclamaciones_fase2A as $reclamacion_fase2A) {
            //Imprimo cada fila
            $fila = array(
                $reclamacion_fase2A['Proyect']['codigo'],
                $reclamacion_fase2A['PollClaim']['calificacion'],
                $reclamacion_fase2A['PollClaim']['concepto'],
                $reclamacion_fase2A['PollClaim']['numero_acta'],
                $reclamacion_fase2A['PollClaim']['fecha_recibido'],
                $reclamacion_fase2A['PollClaim']['radicado_entrada'],
                $reclamacion_fase2A['PollClaim']['radicado_salida'],
                $reclamacion_fase2A['PollClaim']['fecha_contestacion'],
                $reclamacion_fase2A['PollClaim']['fecha_session']
            );

            $newRow = array();

            foreach ($fila as $a) {
                $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
            }

            fputcsv($csv_file, $newRow, ';', '"');
        }

        fclose($csv_file);
    }

}

?>